Can now add items to one's watchlist on MySQL again.
-- ("notification flags") at once by clicking the new button on his/her watchlist page.
-- T. Gries/M. Arndt 11.09.2004 - December 2004
-ALTER TABLE /*$wgDBprefix*/watchlist ADD (wl_notificationtimestamp varchar(14) binary NOT NULL default '0');
+ALTER TABLE /*$wgDBprefix*/watchlist ADD (wl_notificationtimestamp varchar(14) binary);
--- /dev/null
+-- Set up wl_notificationtimestamp with NULL support.
+-- 2005-08-17
+
+ALTER TABLE /*$wgDBprefix*/watchlist
+ CHANGE wl_notificationtimestamp wl_notificationtimestamp varchar(14) binary;
+
+UPDATE /*$wgDBprefix*/watchlist
+ SET wl_notificationtimestamp=NULL
+ WHERE wl_notificationtimestamp='0';
-- Timestamp when user was last sent a notification e-mail;
-- cleared when the user visits the page.
- -- FIXME: add proper null support etc
- wl_notificationtimestamp varchar(14) binary NOT NULL default '0',
+ wl_notificationtimestamp varchar(14) binary,
UNIQUE KEY (wl_user, wl_namespace, wl_title),
KEY namespace_title (wl_namespace,wl_title)
}
+function do_watchlist_null() {
+ # Make sure wl_notificationtimestamp can be NULL,
+ # and update old broken items.
+ global $wgDatabase;
+ $info = $wgDatabase->fieldInfo( 'watchlist', 'wl_notificationtimestamp' );
+
+ if( $info->not_null ) {
+ echo "Making wl_notificationtimestamp nullable... ";
+ dbsource( 'maintenance/archives/patch-watchlist-null.sql', $wgDatabase );
+ echo "ok\n";
+ } else {
+ echo "...wl_notificationtimestamp is already nullable.\n";
+ }
+
+}
+
function do_all_updates() {
global $wgNewTables, $wgNewFields, $wgRenamedTables;
do_user_unique_update(); flush();
do_user_groups_update(); flush();
+
+ do_watchlist_null(); flush();
initialiseMessages(); flush();
}